package com.example.waternetwork.api.supervision.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * <p>
 * 水库基础信息表
 * </p>
 *
 * @author auto gen
 * @since 2025-06-30
 */

@Data
@TableName("supervision.base_reservoir")
@Schema(name = "BaseReservoir", description = "水库基础信息实体")
public class BaseReservoir implements Serializable {

    private static final long serialVersionUID = 1L;

    @Schema(description = "自增主键")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    @Schema(description = "水库编码")
    @TableField("code")
    private String code;

    @Schema(description = "水库名称")
    @TableField("name")
    private String name;

    @Schema(description = "经度")
    @TableField("lon")
    private BigDecimal lon;

    @Schema(description = "纬度")
    @TableField("lat")
    private BigDecimal lat;

    @Schema(description = "梅汛水位")
    @TableField("mold_limit_water_level")
    private BigDecimal moldLimitWaterLevel;

    @Schema(description = "台汛水位")
    @TableField("typhoon_limit_water_level")
    private BigDecimal typhoonLimitWaterLevel;

    @Schema(description = "防洪高水位")
    @TableField("flood_control_high_water_level")
    private BigDecimal floodControlHighWaterLevel;

    @Schema(description = "控制断面")
    @TableField("downstream_section")
    private String downstreamSection;

    @Schema(description = "安全泄流")
    @TableField("section_safe_discharge_flow")
    private BigDecimal sectionSafeDischargeFlow;

    @Schema(description = "水库规模")
    @TableField("scale")
    private String scale;

    @Schema(description = "断面 GeoJSON")
    @TableField("section_geom")
    private String sectionGeom;

    @Schema(description = "标签方向")
    @TableField("direction")
    private Integer direction;

    @Schema(description = "排序")
    @TableField("sort")
    private Integer sort;

    @Schema(description = "断面保证水位")
    @TableField("section_safe")
    private Short sectionSafe;

    @Schema(description = "断面警戒水位")
    @TableField("section_warn")
    private Short sectionWarn;

    @Schema(description = "水库站码")
    @TableField("stcd")
    private String stcd;

    @Schema(description = "集水面积")
    @TableField("catchment_area")
    private Short catchmentArea;

    @Schema(description = "坝高")
    @TableField("dam_height")
    private Short damHeight;

    @Schema(description = "正常水位")
    @TableField("normal_water_level")
    private BigDecimal normalWaterLevel;

    @Schema(description = "流域")
    @TableField("watershed")
    private String watershed;

    @Schema(description = "河流")
    @TableField("river")
    private String river;

    @Schema(description = "征地移民水位")
    @TableField("land_acquisition_water_level")
    private Short landAcquisitionWaterLevel;

    @Schema(description = "泄流能力")
    @TableField("discharge_capacity")
    private Short dischargeCapacity;
}
